BLOCK_RSHIFT = 4
BLOCKS = [None] * 0x2fa2
BLOCKS[0x0:0x8] = [u'Basic Latin'] * 0x8
BLOCKS[0x8:0x10] = [u'Extended Latin'] * 0x8  # Latin-1 Supplement
BLOCKS[0x10:0x18] = [u'Extended Latin'] * 0x8  # Latin Extended-A
BLOCKS[0x18:0x25] = [u'Latin Extended-B'] * 0xd
BLOCKS[0x25:0x2b] = [u'Extended Latin'] * 0x6  # IPA Extensions
BLOCKS[0x2b:0x30] = [u'Spacing Modifier Letters'] * 0x5
BLOCKS[0x37:0x40] = [u'Greek and Coptic'] * 0x9
BLOCKS[0x40:0x50] = [u'Cyrillic'] * 0x10
BLOCKS[0x50:0x53] = [u'Cyrillic Supplement'] * 0x3
BLOCKS[0x53:0x59] = [u'Armenian'] * 0x6
BLOCKS[0x59:0x60] = [u'Hebrew'] * 0x7
BLOCKS[0x60:0x70] = [u'Arabic'] * 0x10
BLOCKS[0x70:0x75] = [u'Syriac'] * 0x5
BLOCKS[0x75:0x78] = [u'Arabic Supplement'] * 0x3
BLOCKS[0x78:0x7c] = [u'Thaana'] * 0x4
BLOCKS[0x7c:0x80] = [u'NKo'] * 0x4
BLOCKS[0x80:0x84] = [u'Samaritan'] * 0x4
BLOCKS[0x84:0x86] = [u'Mandaic'] * 0x2
BLOCKS[0x90:0x98] = [u'Devanagari'] * 0x8
BLOCKS[0x98:0xa0] = [u'Bengali'] * 0x8
BLOCKS[0xa0:0xa8] = [u'Gurmukhi'] * 0x8
BLOCKS[0xa8:0xb0] = [u'Gujarati'] * 0x8
BLOCKS[0xb0:0xb8] = [u'Oriya'] * 0x8
BLOCKS[0xb8:0xc0] = [u'Tamil'] * 0x8
BLOCKS[0xc0:0xc8] = [u'Telugu'] * 0x8
BLOCKS[0xc8:0xd0] = [u'Kannada'] * 0x8
BLOCKS[0xd0:0xd8] = [u'Malayalam'] * 0x8
BLOCKS[0xd8:0xe0] = [u'Sinhala'] * 0x8
BLOCKS[0xe0:0xe8] = [u'Thai'] * 0x8
BLOCKS[0xe8:0xf0] = [u'Lao'] * 0x8
BLOCKS[0xf0:0x100] = [u'Tibetan'] * 0x10
BLOCKS[0x100:0x10a] = [u'Myanmar'] * 0xa
BLOCKS[0x10a:0x110] = [u'Georgian'] * 0x6
BLOCKS[0x110:0x120] = [u'Hangul Jamo'] * 0x10
BLOCKS[0x120:0x138] = [u'Ethiopic'] * 0x18
BLOCKS[0x138:0x13a] = [u'Ethiopic Supplement'] * 0x2
BLOCKS[0x13a:0x140] = [u'Cherokee'] * 0x6
BLOCKS[0x140:0x168] = [u'Unified Canadian Aboriginal Syllabics'] * 0x28
BLOCKS[0x168:0x16a] = [u'Ogham'] * 0x2
BLOCKS[0x16a:0x170] = [u'Runic'] * 0x6
BLOCKS[0x170:0x172] = [u'Tagalog'] * 0x2
BLOCKS[0x172:0x174] = [u'Hanunoo'] * 0x2
BLOCKS[0x174:0x176] = [u'Buhid'] * 0x2
BLOCKS[0x176:0x178] = [u'Tagbanwa'] * 0x2
BLOCKS[0x178:0x180] = [u'Khmer'] * 0x8
BLOCKS[0x180:0x18b] = [u'Mongolian'] * 0xb
BLOCKS[0x18b:0x190] = [u'Unified Canadian Aboriginal Syllabics Extended'] * 0x5
BLOCKS[0x190:0x195] = [u'Limbu'] * 0x5
BLOCKS[0x195:0x198] = [u'Tai Le'] * 0x3
BLOCKS[0x198:0x19e] = [u'New Tai Lue'] * 0x6
BLOCKS[0x1a0:0x1a2] = [u'Buginese'] * 0x2
BLOCKS[0x1a2:0x1ab] = [u'Tai Tham'] * 0x9
BLOCKS[0x1b0:0x1b8] = [u'Balinese'] * 0x8
BLOCKS[0x1b8:0x1bc] = [u'Sundanese'] * 0x4
BLOCKS[0x1bc:0x1c0] = [u'Batak'] * 0x4
BLOCKS[0x1c0:0x1c5] = [u'Lepcha'] * 0x5
BLOCKS[0x1c5:0x1c8] = [u'Ol Chiki'] * 0x3
BLOCKS[0x1cd:0x1d0] = [u'Vedic Extensions'] * 0x3
BLOCKS[0x1d0:0x1d8] = [u'Phonetic Extensions'] * 0x8
BLOCKS[0x1d8:0x1dc] = [u'Phonetic Extensions Supplement'] * 0x4
BLOCKS[0x1e0:0x1f0] = [u'Latin Extended Additional'] * 0x10
BLOCKS[0x1f0:0x200] = [u'Greek Extended'] * 0x10
BLOCKS[0x207:0x20a] = [u'Superscripts and Subscripts'] * 0x3
BLOCKS[0x210:0x215] = [u'Letterlike Symbols'] * 0x5
BLOCKS[0x215:0x219] = [u'Number Forms'] * 0x4
BLOCKS[0x2c0:0x2c6] = [u'Glagolitic'] * 0x6
BLOCKS[0x2c6:0x2c8] = [u'Latin Extended-C'] * 0x2
BLOCKS[0x2c8:0x2d0] = [u'Coptic'] * 0x8
BLOCKS[0x2d0:0x2d3] = [u'Georgian Supplement'] * 0x3
BLOCKS[0x2d3:0x2d8] = [u'Tifinagh'] * 0x5
BLOCKS[0x2d8:0x2de] = [u'Ethiopic Extended'] * 0x6
BLOCKS[0x2e0:0x2e8] = [u'Supplemental Punctuation'] * 0x8
BLOCKS[0x300:0x304] = [u'CJK Symbols and Punctuation'] * 0x4
BLOCKS[0x304:0x30a] = [u'Kana'] * 0x6  # Hiragana
BLOCKS[0x30a:0x310] = [u'Kana'] * 0x6  # Katakana
BLOCKS[0x310:0x313] = [u'Bopomofo'] * 0x3
BLOCKS[0x313:0x319] = [u'Hangul Compatibility Jamo'] * 0x6
BLOCKS[0x31a:0x31c] = [u'Bopomofo Extended'] * 0x2
BLOCKS[0x31f:0x320] = [u'Kana'] * 0x1  # Katakana Phonetic Extensions
BLOCKS[0x340:0x4dc] = [u'CJK Unified Ideographs Extension A'] * 0x19c
BLOCKS[0x4e0:0xa00] = [u'CJK Unified Ideographs'] * 0x520
BLOCKS[0xa00:0xa49] = [u'Yi Syllables'] * 0x49
BLOCKS[0xa4d:0xa50] = [u'Lisu'] * 0x3
BLOCKS[0xa50:0xa64] = [u'Vai'] * 0x14
BLOCKS[0xa64:0xa6a] = [u'Cyrillic Extended-B'] * 0x6
BLOCKS[0xa6a:0xa70] = [u'Bamum'] * 0x6
BLOCKS[0xa70:0xa72] = [u'Modifier Tone Letters'] * 0x2
BLOCKS[0xa72:0xa80] = [u'Latin Extended-D'] * 0xe
BLOCKS[0xa80:0xa83] = [u'Syloti Nagri'] * 0x3
BLOCKS[0xa84:0xa88] = [u'Phags-pa'] * 0x4
BLOCKS[0xa88:0xa8e] = [u'Saurashtra'] * 0x6
BLOCKS[0xa8e:0xa90] = [u'Devanagari Extended'] * 0x2
BLOCKS[0xa90:0xa93] = [u'Kayah Li'] * 0x3
BLOCKS[0xa93:0xa96] = [u'Rejang'] * 0x3
BLOCKS[0xa96:0xa98] = [u'Hangul Jamo Extended-A'] * 0x2
BLOCKS[0xa98:0xa9e] = [u'Javanese'] * 0x6
BLOCKS[0xaa0:0xaa6] = [u'Cham'] * 0x6
BLOCKS[0xaa6:0xaa8] = [u'Myanmar Extended-A'] * 0x2
BLOCKS[0xaa8:0xaae] = [u'Tai Viet'] * 0x6
BLOCKS[0xab0:0xab3] = [u'Ethiopic Extended-A'] * 0x3
BLOCKS[0xabc:0xac0] = [u'Meetei Mayek'] * 0x4
BLOCKS[0xac0:0xd7b] = [u'Hangul Syllables'] * 0x2bb
BLOCKS[0xd7b:0xd80] = [u'Hangul Jamo Extended-B'] * 0x5
BLOCKS[0xf90:0xfb0] = [u'CJK Compatibility Ideographs'] * 0x20
BLOCKS[0xfb0:0xfb5] = [u'Alphabetic Presentation Forms'] * 0x5
BLOCKS[0xfb5:0xfe0] = [u'Arabic Presentation Forms-A'] * 0x2b
BLOCKS[0xfe7:0xff0] = [u'Arabic Presentation Forms-B'] * 0x9
BLOCKS[0xff0:0xfff] = [u'Halfwidth and Fullwidth Forms'] * 0xf
BLOCKS[0x1000:0x1008] = [u'Linear B Syllabary'] * 0x8
BLOCKS[0x1008:0x1010] = [u'Linear B Ideograms'] * 0x8
BLOCKS[0x1028:0x102a] = [u'Lycian'] * 0x2
BLOCKS[0x102a:0x102e] = [u'Carian'] * 0x4
BLOCKS[0x1030:0x1033] = [u'Old Italic'] * 0x3
BLOCKS[0x1033:0x1035] = [u'Gothic'] * 0x2
BLOCKS[0x1038:0x103a] = [u'Ugaritic'] * 0x2
BLOCKS[0x103a:0x103e] = [u'Old Persian'] * 0x4
BLOCKS[0x1040:0x1045] = [u'Deseret'] * 0x5
BLOCKS[0x1045:0x1048] = [u'Shavian'] * 0x3
BLOCKS[0x1048:0x104b] = [u'Osmanya'] * 0x3
BLOCKS[0x1080:0x1084] = [u'Cypriot Syllabary'] * 0x4
BLOCKS[0x1084:0x1086] = [u'Imperial Aramaic'] * 0x2
BLOCKS[0x1090:0x1092] = [u'Phoenician'] * 0x2
BLOCKS[0x1092:0x1094] = [u'Lydian'] * 0x2
BLOCKS[0x10a0:0x10a6] = [u'Kharoshthi'] * 0x6
BLOCKS[0x10a6:0x10a8] = [u'Old South Arabian'] * 0x2
BLOCKS[0x10b0:0x10b4] = [u'Avestan'] * 0x4
BLOCKS[0x10b4:0x10b6] = [u'Inscriptional Parthian'] * 0x2
BLOCKS[0x10b6:0x10b8] = [u'Inscriptional Pahlavi'] * 0x2
BLOCKS[0x10c0:0x10c5] = [u'Old Turkic'] * 0x5
BLOCKS[0x1100:0x1108] = [u'Brahmi'] * 0x8
BLOCKS[0x1108:0x110d] = [u'Kaithi'] * 0x5
BLOCKS[0x1200:0x1240] = [u'Cuneiform'] * 0x40
BLOCKS[0x1300:0x1343] = [u'Egyptian Hieroglyphs'] * 0x43
BLOCKS[0x1680:0x16a4] = [u'Bamum Supplement'] * 0x24
BLOCKS[0x1b00:0x1b10] = [u'Kana Supplement'] * 0x10
BLOCKS[0x1d40:0x1d80] = [u'Mathematical Alphanumeric Symbols'] * 0x40
BLOCKS[0x2000:0x2a6e] = [u'CJK Unified Ideographs Extension B'] * 0xa6e
BLOCKS[0x2a70:0x2b74] = [u'CJK Unified Ideographs Extension C'] * 0x104
BLOCKS[0x2b74:0x2b82] = [u'CJK Unified Ideographs Extension D'] * 0xe
BLOCKS[0x2f80:0x2fa2] = [u'CJK Compatibility Ideographs Supplement'] * 0x22
